// 函数作为参数
const { log } = console
// 模拟forEach
function forEach(array, fn) {
  for (let i = 0; i < array.length; i++) {
    fn(array[i])
  }
}

// let arr = [1, 2, 3, 4, 5, 6];
// forEach(arr, function (i) {
//     log(i);
// });

// 模拟filter
function filter(array, fn) {
  let results = []
  for (let i = 0; i < array.length; i++) {
    if (fn(array[i])) {
      results.push(array[i])
    }
  }
  return results
}
let arr = [1, 2, 3, 4, 5, 6]

let r = filter(arr, function (i) {
  return i % 2 === 0
})
log(r)
// [ 2, 4, 6 ]
// 函数作为参数 更灵活 也有实际意义
